package com.czk.durant.springframework.beans.factory.support;

import com.czk.durant.springframework.beans.factory.config.BeanDefinition;

import java.lang.reflect.Constructor;

/**
 * 实例化策略的接口
 *
 * @Author:ChenZhangKun
 * @Date: 2021/6/9 15:24
 */
public interface InstantiationStrategy {
    /**
     * 实例化一个对象的接口
     *
     * @param beanDefinition 对象描述
     * @param beanName       对象名称
     * @param constructor    构造器
     * @param args           参数集合
     * @return
     */
    Object instantiate(BeanDefinition beanDefinition, String beanName, Constructor constructor, Object[] args);
}
